package com.kamistoat.meimeistore.commonsecurity.annotation;

import java.lang.annotation.*;

/**
 * 内部认证注解.注意该注解只能作用在 method上
 * 被 @InnerAuth 注解的方法只能在内部间进行调用。
 *
 * 注意，这里不是啥高级内容。就是在调用 被@InnerAuth标注的方法前，手动向请求Header中添加一个固定的k-v对来记录来源。
 * 然后整一个AOP切面，对所有 @InnerAuth校验，检查Header是否存在上述固定k-v而已。
 *
 * 具体可以去看 RemoteUserService(调用内部方法) 和 InnerAuthAspect(切面校验内部方法)
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface InnerAuth {
    /**
     * 声明被注解的方法是否还需要校验用户信息?默认为false
     * false代表允许内部匿名用户调用方法，true代表必须为非匿名用户
     */
    boolean isUser() default false;
}
